function xder_curl,f,x

s=size(f)
mx=s[1]
dx2=1./(60.*(x[1]-x[0]))
;
d=dx2*(+45.*(shift(f,-1)-shift(f,1))$
          -9.*(shift(f,-2)-shift(f,2))$
             +(shift(f,-3)-shift(f,3))$
       )
;
d[0]=dx2*(-147.*f(0)+360.*f(1)-450.*f(2)+400.*f(3)-225.*f(4)+72.*f(5)-10.*f(6))
d[1]=dx2*(-10.*f(0)-77.*f(1)+150.*f(2)-100.*f(3)+50.*f(4)-15.*f(5)+2.*f(6))
d[2]=dx2*(2.*f(0)-24.*f(1)-35.*f(2)+80.*f(3)-30.*f(4)+8.*f(5)-f(6))
;
;  outer points
;
d[mx-1]=dx2*(147.*f(mx-1)-360.*f(mx-2)+450.*f(mx-3)-400.*f(mx-4)+225.*f(mx-5)-72.*f(mx-6)+10.*f(mx-7))
d[mx-2]=dx2*(10.*f(mx-1)+77.*f(mx-2)-150.*f(mx-3)+100.*f(mx-4)-50.*f(mx-5)+15.*f(mx-6)-2.*f(mx-7))
d[mx-3]=dx2*(-2.*f(mx-1)+24.*f(mx-2)+35.*f(mx-3)-80.*f(mx-4)+30.*f(mx-5)-8.*f(mx-6)+f(mx-7))
;
return,d
end
